package main

// 第二种方式
// 统计每个档位的数量，比如被引用1次的有多少，被引用5次的有多少；
// 从高往低数，找到
func hIndex(citations []int) int {
	l := len(citations)
	count := make([]int, l+1)
	for _, n := range citations {
		if n >= l {
			count[l]++ //被引用次数大于论文数量，也只能按这个档位计次
		} else {
			count[n]++
		}
	}

	total := 0
	for i := l; i >= 0; i-- {
		total += count[i]
		if total >= i {
			return total
		}
	}
	return 0
}
